查看原文
其他

一款快速构建de bruijin图的软件

生信阿拉丁 生信阿拉丁 2022-05-16

de bruijin图在生物信息学当中是一个非常重要的概念,相信大家都耳熟能详,但是怎么构建,怎么用,今天跟着小编来了解一下吧。



前言



de Bruijin图在生物信息中应用中有着很长的历史,例如可以用于基因组的组装。在sanger测序的时候,组装大多利用OLC算法,而到了二代测序的时候,基于de bruijin的组装算法出现了很多。现在,de-bruijin在很多方面都有应用,例如:

  • denovo 组装

  • 变异检测

  • 序列压缩

  • 序列矫正

  • 序列比对等

然而,de bruijin的应用有两个方面的限制:

  • 在构建de bruijin图的时候,计算资源和内存的使用都需要很多

  • 构建de bruijin的时候,需要非常好的代码来构建和操作de brujin graph。

在这里,我们给大家介绍一款叫Bifrost的软件,可以用来构建、索引和查询de bruijin图。


安装



最简单的方法就是用conda了。

1conda -c bioconda bifrost



参数说明



输入软件路径后,会得到命令行的

介绍一些主要参数

1-s  : 输入的序列文件,如果kmer出现次数只有一次的,会过滤掉
2-r  : 输入的参考文件,所有kmer会用于构图
3-o  : 输出文件
4-t :线程数
5-k :kmer的长度
6-c : 构建color的de bruijin graph



使用例子



01

使用build构建de bruijin graph


  1. 仅利用fastq来构建de bruijin graph

1Bifrost build -t 4 -k 31 -i -d -s A.fastq -s B.fastq -o AB_graph 
  1. 仅使用reference geome来构建de bruijin graph

1Bifrost build -t 4 -k 31 -r C.fasta -o C_graph 
  1. 利用fastq和reference genome一起来构建de bruijin graph

1Bifrost build -t 4 -k 31 -c -i -d -s A.fastq -s B.fastq -r C.fasta -o ABC 


02

使用update更新de bruijin graph


  1. 用reference genome来更新de bruijin graph

1Bifrost update -t 4 -r D.fasta -g C_graph.gfa -o CD_graph 
  1. 更新一个color graph

1Bifrost update -t 4 -i -d -s E.fastq -s F.fastq -g ABC.gfa -f ABC.bfg_colors -o ABCEF 


03

使用Query来查询

  1. 普通查询

    -e是指定相似度的意思,最终结果是序列是否在de bruijin的结果。1表示存在,0表示不存在

1Bifrost query -t 4 -e 0.8 -g ABCEF.gfa -q queries.fasta -o presence_queries 
  1. 近似查询

    使用-n 来进行不精确匹配。

1Bifrost query -t 4 -e 0.8 -n -g ABCEF.gfa -q queries.fasta -o presence_queries 
  1. 对color graph进行查询

1Bifrost query -t 4 -e 0.8 -g ABCEF.gfa -f ABCEF.bfg_colors -q queries.fasta -o presence_queries 



个人使用案例



  1. 构建两个fa: toy.fa 和toy2.fa

  2. 生成color graph

1~/.conda/envs/py37/bin/Bifrost build -t 8 -c  -k 31 -r toy.fa -r toy2.fa -o toy_color

产生两个文件toy_color.bfg_colors和toy_color.gfa。

  1. kmer的查询,准备一个tt.fa

1~/.conda/envs/py37/bin/Bifrost query -t 4 -e 0.8 -g toy_color.gfa -f toy_color.bfg_colors -q tt.fa -o query_color

最后结果为:


总结



这个工具可以很方便的用来构建de-bruijin图,然而,这个软件输出结果比较简单,只有0/1的结果。

不过这个软件提供了函数,可以嵌入到程序中,用于后续其他的应用,例如BlastFrost利用这个包来进行快速的比对,有兴趣的可以去看看吧。

参考资料

1. https://github.com/pmelsted/bifrost
2. Holley, G., Melsted, P. Bifrost: highly parallel construction and indexing of colored and compacted de Bruijn graphs. Genome Biol 21, 249 (2020). https://doi.org/10.1186/s13059-020-02135-8
3. https://github.com/nluhmann/BlastFrost


作者:童蒙

编辑:amethyst

往期回顾

一种不需制备植物原生质体的单细胞测序技术

CopyKat——基于高通量单细胞测序方法鉴定肿瘤细胞拷贝数变异和亚克隆结构

用sklearn进行降维的七种方法

一文看懂三代组装软件——Flye

介绍一款单细胞细胞类型注释软件-scibet

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存